Nonvolatile memory devices maintain stored data in memory cells when its power supply is cut off. One type of nonvolatile memory widely used in computers, memory cards, and the like, for its ability to electronically erase and store data, is flash memory.
Flash memory is categorized as either NOR or NAND type according to their memory cell structure. The NOR type flash memory connects two or more memory cells in parallel to each bit line, while the NAND type flash memory serially connects two or more memory cells to each bit line. The NOR type flash memory stores, or programs, data to memory cells using channel hot electron injection and erases data stored in memory cells using Fowler-Nordheim tunneling (F-N tunneling). The NAND type flash memory both stores and erases data in memory cells using F-N tunneling. With channel hot electron injection implementation, the NOR type flash memory programs cells more quickly than NAND type flash memory. A trade-off to this improved performance is that the NOR type flash memory dissipates more memory cell current adversely affecting large-scale integration.
To program or store data in NOR type flash memory, a program command, a program address, and program data are provided to the flash memory. The program command may indicate the type of operation to be performed on the flash memory, e.g., a program operation. The portion of the flash memory to be programmed is typically erased prior to execution of the programming operation, where erasing sets each erased memory cell to a first predetermined value, e.g., logic high or “1”. The program address and program data may select memory cells to be programmed responsive to the program command. For instance, the program address may activate a word line and the program data may indicate which memory cell(s) coupled to the activated word line will be programmed. Typically a programming operation programs a second predetermined value, e.g., logic low or “0,” to each selected memory cell and maintains the erased first predetermined value otherwise.
The flash memory internally designates a preset time for the completion of each programming operation. The program operation includes a verify operation for determining whether the program data is successfully programmed in each addressed memory cell. During the preset time, the programming and verify operations are repeated until the program data is programmed in each addressed memory cell.
To execute the programming operation, a program voltage corresponding to each second predetermined program data value (e.g., “0”) is applied to each corresponding bit line. Since NOR type flash memory is programmed using channel hot electron injection, typically only 2 to 4 memory cells may be concurrently programmed by the program voltage during a single programming operation. For instance, when four memory cells may be synchronously programmed during a single program operation and when the program data is “1001101111110111”, four programming operationsof“1001”, “1011”, “1111”, and “0111” are required even though only four memory cells, e.g., those cells with a corresponding “0” in the program data, are physically being changed by the programming operations.
Therefore, the program time, or the time required to program the program data to the flash memory, is always uniform regardless of whether the program data is a first or second predetermined value.